Configuration for Logging in ASP.NET Core
ASP.NET Core में Logging की कॉन्फ़िगरेशन
ASP.NET Core में Logging की कॉन्फ़िगरेशन वास्तव में उसके आधुनिक, फ्लेक्सिबल और एक्स्टेंसिबल डिज़ाइन को दर्शाती है। इसको समझने के लिए हमें तीन मुख्य घटकों - कॉन्फ़िगरेशन सोर्स, कॉन्फ़िगरेशन डाटा और कॉन्फ़िगरेशन प्रोवाइडर - की भूमिका को स्पष्ट करना होगा:
1. Configuration Source (कॉन्फ़िगरेशन स्रोत)
यह वह "origin" है जहाँ से ASP.NET Core आपकी ऐप के लिए configuration data पढ़ता है।
उदाहरण:
- json (या appsettings.Development.json)
- Command-line arguments (--loglevel Debug)
- Environment variables (ASPNETCORE_LOGGING__LOGLEVEL__DEFAULT)
- User secrets
- Azure Key Vault
परिभाषा:
public interface IConfigurationSource
👉 ASP.NET Core में प्रत्येक configuration source को एक provider में बदला जाता है।
2. Configuration Provider (कॉन्फ़िगरेशन प्रदाता)
यह एक ऐसा component है जो Configuration Source से डेटा लेकर उसे app के उपयोग योग्य key-value pairs में बदलता है।
उदाहरण:
- JsonConfigurationProvider → JSON फ़ाइल पढ़ता है
- EnvironmentVariablesConfigurationProvider → Env vars पढ़ता है
- CommandLineConfigurationProvider → CLI arguments पढ़ता है
- MemoryConfigurationProvider → रनटाइम में इन-मेमोरी सेटिंग्स के लिए
परिभाषा:
public interface IConfigurationProvider
👉 हर IConfigurationSource object का Build() method एक IConfigurationProvider लौटाता है।
3. Configuration Data (कॉन्फ़िगरेशन डेटा)
यह वह वास्तविक डेटा है जो सभी providers से मिलकर बना होता है और IConfiguration के रूप में उपलब्ध होता है।
उदाहरण के लिए, appsettings.json में लॉगिंग का भाग:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
यह डेटा Configuration Providers द्वारा पढ़कर इस रूप में उपलब्ध होता है:
var logLevel = configuration["Logging:LogLevel:Default"]; // Returns "Information"
यह तीनों कैसे जुड़ते हैं?
Sources => Providers => Data
appsettings.json, Env Vars) => Json/EnvVar Provider => IConfiguration usable data
और यह सारा डेटा HostBuilder या WebApplicationBuilder में आता है:
var builder = WebApplication.CreateBuilder(args); // builder.Configuration अब सभी config providers से डेटा पढ़ चुका है
var level = builder.Configuration["Logging:LogLevel:Default"];
ASP.NET Core में लॉगिंग कॉन्फ़िगरेशन कैसे पढ़ी जाती है?
Logging system खुद IConfiguration को पढ़ता है और इसकी मदद से लॉगर्स को configure करता है।
builder.Logging.ClearProviders(); builder.Logging.AddConsole(); builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging"));
ऊपर की लाइन Logging सेक्शन को पढ़कर सारे लॉगर्स को configure करती है — जैसे कि log level, filters, scopes आदि।
एक Visualization:
कल्पना कीजिए कि आपकी एप्लिकेशन एक महल है, जिसमें आपको बहुत सी जानकारी (logging settings) दरबारियों से चाहिए:
तत्व | उपमा |
---|---|
Configuration Source | वह स्थान जहाँ से सूचना आती है (काग़ज़, पत्र, मौखिक आज्ञा) |
Configuration Provider | वह दरबारी जो उस सूचना को पढ़कर राजा को समझाता है |
Configuration Data | वह वास्तविक सूचना जो राजा (ASP.NET Core) अपने निर्णयों के लिए उपयोग करता है |
टिप्पणियाँ
एक टिप्पणी भेजें